// 1、导入系统模块

// 2、导入第三方模块
// 2.1 导入数据库配置文件
const {
    MONGODB_USER,
    MONGODB_PASSWORD,
    MONGODB_HOST,
    MONGODB_PORT,
    MONGODB_DB ,
    MONGODB_MIN_POOL ,
    MONGODB_MAX_POOL ,
} = require('../config/config.default')
// 2.2 引入mongoose
const mongoose = require("mongoose");
mongoose.Promise = global.Promise;
// 3、生成数据库配置文件
// 3.1 配置mongodb Url
const URL= 'mongodb://'+MONGODB_HOST+':'+MONGODB_PORT+'/'+MONGODB_DB

// 3.2 连接数据库,配置链接池大小
const mongoClient = mongoose.createConnection(URL,{
    minPoolSize:MONGODB_MIN_POOL*1,
    maxPoolSize:MONGODB_MAX_POOL*1,
})

// 3.3 连接失败
mongoClient.on('error', function(err) {
    console.log('Mongoose 连接失败，原因: ' + err)
})


// 3.4 连接成功
mongoClient.on('connected', function() {
    console.log(new Date().getTime())
    console.log('Mongoose连接至 ：' + URL)
})

// 3.5 断开数据库
mongoClient.on('disconnected', function() {
    console.log('Mongoose 连接关闭');
});

/**
 * 关闭 Mongo 连接
 */
function close() {
    mongoClient.close();
}

// 4、将mongoose导出

module.exports =  {
    mongoose,
    mongoClient
}